package model.condicionesVenta;

import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table;

import dtos.CondicionVentaDTO;

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="tipo",
    			              discriminatorType=DiscriminatorType.STRING)
@Table(name="CondicionesVenta")
public abstract class CondicionVenta {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name="idCondicion")
	private int id;
	
	@Column(columnDefinition="Decimal(5,2)")
	private double porcentaje;
	
	private boolean esDescuento;
	
	private String descripcion;
	
	public CondicionVenta(){}
	
	public CondicionVenta(double porcentaje, boolean esDescuento, String descripcion)
	{
		this.porcentaje = porcentaje;
		this.esDescuento = esDescuento;
		this.descripcion = descripcion;
	}
	
	public double getPorcentaje() {
		return porcentaje;
	}
	public void setPorcentaje(double porcentaje) {
		this.porcentaje = porcentaje;
	}
	public boolean isEsDescuento() {
		return esDescuento;
	}
	public void setEsDescuento(boolean esDescuento) {
		this.esDescuento = esDescuento;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}	
	
	public abstract String getTipo();
	
	public abstract CondicionVentaDTO getView();
}
